{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "scrolled": false
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "# import tensorflow as tf  # 深度学习框架 pip install tensorflow\n",
    "import datetime\n",
    "# from deep_tools import f  # conda install -c bioconda deeptools，pip方法不奏效\n",
    "# from deep_tools import DataCenerator"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "\"\"\"读取数据集\"\"\"\n",
    "register = pd.read_csv('user_register_log.txt', sep='\\t', names=['user_id', 'register_day', 'register_type', 'device_type'])\n",
    "launch = pd.read_csv('app_launch_log.txt', sep='\\t', names=['user_id', 'launch_day'])\n",
    "create = pd.read_csv('video_create_log.txt', sep='\\t', names=['user_id', 'create_day'])\n",
    "activity = pd.read_csv('user_activity_log.txt', sep='\\t', names=['user_id', 'act_day', 'page', 'video_id', 'author_id', 'act_type'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>register_day</th>\n",
       "      <th>register_type</th>\n",
       "      <th>device_type</th>\n",
       "      <th>seq_length</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>744025</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>283</td>\n",
       "      <td>30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1270299</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>259</td>\n",
       "      <td>30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>571220</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1308501</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>23</td>\n",
       "      <td>30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>745554</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>30</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   user_id  register_day  register_type  device_type  seq_length\n",
       "0   744025             1              1          283          30\n",
       "1  1270299             1              1          259          30\n",
       "2   571220             1              1            2          30\n",
       "3  1308501             1              0           23          30\n",
       "4   745554             1              2            0          30"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\"\"\"计算序列长度： 持续时间 = 数据总时间 - 注册时间\"\"\"\n",
    "register['seq_length'] = 31 - register['register_day']\n",
    "register.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "\"\"\"根据前面的记录天数，创建一个字典，来存储不同记录天数的用户到底有哪些 \"\"\"\n",
    "user_queue = {i: []  for i in range(1,31)}\n",
    "\n",
    "for index, row in register.iterrows():  # 这个iterrows是对DataFrame进行行遍历，是在数据框中的行进行迭代的一个生成器，它返回每行的索引及一个包含行本身的对象。\n",
    "    user_queue[row[-1]].append(row[0]) # row[-1]是seq_length, row[0]是user_id"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "\"\"\"定义一个user_seq类\"\"\"\n",
    "class user_seq:\n",
    "    \n",
    "    def __init__(self, register_day, seq_length, n_feagures):\n",
    "        \"\"\"\n",
    "            register_day: 用户第几天进行的登录\n",
    "            seq_length: 用户序列的长度，就是记录了几天登录信息， 行数\n",
    "            n_features: 每天提出的特征个数， 列数\n",
    "        \"\"\"\n",
    "        self.register_day = register_day\n",
    "        self.seq_length = seq_length\n",
    "        self.array = np.zeros([self.seq_length, n_feagures])   # 这就是上面那个用户对应的矩阵形式，初始化位0\n",
    "        self.array[0,0] = 1\n",
    "        self.page_rank = np.zeros([self.seq_length])\n",
    "        self.pointer = 1\n",
    "    \n",
    "    # 提取特征填入特征矩阵\n",
    "    def put_feature(self, feature_number, string):\n",
    "        for i in string.split(','):\n",
    "            pos, value = i.split(':')     # 注册后的第几天进行了登录，1为指示符\n",
    "            self.array[int(pos)-self.register_day, feature_number] = 1   # 从注册后开始记录\n",
    "    \n",
    "    def put_PR(self,string):\n",
    "        for i in string.split(','):\n",
    "            pop,value = i.split(';')\n",
    "            self.page_rank[int(pos)-self.register_day] = value\n",
    "    \n",
    "    def get_array(self):\n",
    "        return self.array\n",
    "    \n",
    "    # 得到标签  如果一个用户在未来七天活跃了，那么标记为1\n",
    "    def get_label(self):\n",
    "        self.label = np.array([None] * self.seq_length)    # 一个seq_length长度的数组\n",
    "        active = self.array[:, :10].sum(axis=1)          # 这里选了一部分特征做了个sum，意思是不管是转发，登录，啥的，只要做了就算一次活动\n",
    "        for i in range(self.seq_length-7):      # 这地方得控制一下，如果一个用户15-30的数据，那么我们标签最多只能到23天，因为30天之后的数据我们没有\n",
    "            self.label[i] = 1 * (np.sum(active[i+1:i+8]) > 0)    # 这里对于当前的i，如果未来七天内活跃过，那么标签就是1\n",
    "        return self.label"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "\"\"\"创建用户的记录矩阵\"\"\"\n",
    "n_features = 12\n",
    "data = {row[0]:user_seq(register_day=row[1], seq_length=row[-1],n_feagures=n_features) for index, row in register.iterrows()}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{744025: <__main__.user_seq at 0x1b780282ac8>,\n",
       " 1270299: <__main__.user_seq at 0x1b780282668>,\n",
       " 571220: <__main__.user_seq at 0x1b780282940>,\n",
       " 1308501: <__main__.user_seq at 0x1b780282748>,\n",
       " 745554: <__main__.user_seq at 0x1b780282160>,\n",
       " 1031012: <__main__.user_seq at 0x1b7802823c8>,\n",
       " 913297: <__main__.user_seq at 0x1b780282ba8>,\n",
       " 266500: <__main__.user_seq at 0x1b780282978>,\n",
       " 475120: <__main__.user_seq at 0x1b780282240>,\n",
       " 547944: <__main__.user_seq at 0x1b780282a90>,\n",
       " 916655: <__main__.user_seq at 0x1b780282a58>,\n",
       " 719262: <__main__.user_seq at 0x1b7802826a0>,\n",
       " 1026175: <__main__.user_seq at 0x1b780282358>,\n",
       " 1140342: <__main__.user_seq at 0x1b7802825f8>,\n",
       " 688100: <__main__.user_seq at 0x1b780282048>,\n",
       " 1342459: <__main__.user_seq at 0x1b780282e80>,\n",
       " 926263: <__main__.user_seq at 0x1b780282438>,\n",
       " 40710: <__main__.user_seq at 0x1b780282400>,\n",
       " 246954: <__main__.user_seq at 0x1b780282f28>,\n",
       " 153579: <__main__.user_seq at 0x1b7802826d8>,\n",
       " 161418: <__main__.user_seq at 0x1b7803c1278>,\n",
       " 649526: <__main__.user_seq at 0x1b7803c1128>,\n",
       " 376694: <__main__.user_seq at 0x1b7803c12e8>,\n",
       " 1265894: <__main__.user_seq at 0x1b7803c1390>,\n",
       " 290029: <__main__.user_seq at 0x1b7803c15c0>,\n",
       " 926952: <__main__.user_seq at 0x1b7803c1438>,\n",
       " 70931: <__main__.user_seq at 0x1b7803c1518>,\n",
       " 319938: <__main__.user_seq at 0x1b7803c1588>,\n",
       " 711107: <__main__.user_seq at 0x1b7803c14a8>,\n",
       " 872383: <__main__.user_seq at 0x1b7803c1400>,\n",
       " 324085: <__main__.user_seq at 0x1b7803c1550>,\n",
       " 720967: <__main__.user_seq at 0x1b7803c14e0>,\n",
       " 895912: <__main__.user_seq at 0x1b7803c1470>,\n",
       " 396421: <__main__.user_seq at 0x1b7803c1358>,\n",
       " 605799: <__main__.user_seq at 0x1b7803c1320>,\n",
       " 374225: <__main__.user_seq at 0x1b7803c13c8>,\n",
       " 188120: <__main__.user_seq at 0x1b7803c12b0>,\n",
       " 4416: <__main__.user_seq at 0x1b7803c1198>,\n",
       " 245385: <__main__.user_seq at 0x1b7803c15f8>,\n",
       " 1244564: <__main__.user_seq at 0x1b7803c1710>,\n",
       " 321610: <__main__.user_seq at 0x1b7803c16a0>,\n",
       " 998568: <__main__.user_seq at 0x1b7803c1630>,\n",
       " 362447: <__main__.user_seq at 0x1b7803c1668>,\n",
       " 508312: <__main__.user_seq at 0x1b7803c17b8>,\n",
       " 828824: <__main__.user_seq at 0x1b7803c17f0>,\n",
       " 604296: <__main__.user_seq at 0x1b7803c1a90>,\n",
       " 1040779: <__main__.user_seq at 0x1b7803c1860>,\n",
       " 104515: <__main__.user_seq at 0x1b7803c1908>,\n",
       " 909345: <__main__.user_seq at 0x1b7803c1a20>,\n",
       " 584573: <__main__.user_seq at 0x1b7803c1a58>,\n",
       " 809615: <__main__.user_seq at 0x1b7803c1978>,\n",
       " 705594: <__main__.user_seq at 0x1b7803c19e8>,\n",
       " 544673: <__main__.user_seq at 0x1b7803c19b0>,\n",
       " 1353252: <__main__.user_seq at 0x1b7803c1898>,\n",
       " 1228936: <__main__.user_seq at 0x1b7803c18d0>,\n",
       " 130304: <__main__.user_seq at 0x1b7803c1048>,\n",
       " 636433: <__main__.user_seq at 0x1b7803c10b8>,\n",
       " 649913: <__main__.user_seq at 0x1b7803c10f0>,\n",
       " 300198: <__main__.user_seq at 0x1b7803c1080>,\n",
       " 958588: <__main__.user_seq at 0x1b7803c11d0>,\n",
       " 365947: <__main__.user_seq at 0x1b7803c1160>,\n",
       " 546663: <__main__.user_seq at 0x1b7803c1208>,\n",
       " 358836: <__main__.user_seq at 0x1b7803c1240>,\n",
       " 572651: <__main__.user_seq at 0x1b7803c1ac8>,\n",
       " 200677: <__main__.user_seq at 0x1b7803c1b70>,\n",
       " 121072: <__main__.user_seq at 0x1b7803c1ba8>,\n",
       " 283372: <__main__.user_seq at 0x1b7803c1be0>,\n",
       " 1046808: <__main__.user_seq at 0x1b7803c1b00>,\n",
       " 286389: <__main__.user_seq at 0x1b7803c1b38>,\n",
       " 785752: <__main__.user_seq at 0x1b7803c1c18>,\n",
       " 65439: <__main__.user_seq at 0x1b7803c1cc0>,\n",
       " 1070734: <__main__.user_seq at 0x1b7803c1d68>,\n",
       " 409296: <__main__.user_seq at 0x1b7803c1e10>,\n",
       " 507130: <__main__.user_seq at 0x1b7803c1eb8>,\n",
       " 46089: <__main__.user_seq at 0x1b7803c1ef0>,\n",
       " 363195: <__main__.user_seq at 0x1b7803c1e48>,\n",
       " 826213: <__main__.user_seq at 0x1b7803c1e80>,\n",
       " 1095380: <__main__.user_seq at 0x1b7803c1da0>,\n",
       " 742578: <__main__.user_seq at 0x1b7803c1dd8>,\n",
       " 278433: <__main__.user_seq at 0x1b7803c1940>,\n",
       " 323276: <__main__.user_seq at 0x1b7803c1cf8>,\n",
       " 1080404: <__main__.user_seq at 0x1b7803c1d30>,\n",
       " 371793: <__main__.user_seq at 0x1b7803c1f28>,\n",
       " 581535: <__main__.user_seq at 0x1b7803c1f98>,\n",
       " 623713: <__main__.user_seq at 0x1b7803c1fd0>,\n",
       " 613814: <__main__.user_seq at 0x1b7803c1f60>,\n",
       " 1230657: <__main__.user_seq at 0x1b7803c1c50>,\n",
       " 181217: <__main__.user_seq at 0x1b7803c1c88>,\n",
       " 393403: <__main__.user_seq at 0x1b7803c71d0>,\n",
       " 647111: <__main__.user_seq at 0x1b7e8398fd0>,\n",
       " 301007: <__main__.user_seq at 0x1b7803c7048>,\n",
       " 1720: <__main__.user_seq at 0x1b7803c70f0>,\n",
       " 135240: <__main__.user_seq at 0x1b7803c7128>,\n",
       " 1005097: <__main__.user_seq at 0x1b7803c7160>,\n",
       " 1265157: <__main__.user_seq at 0x1b7803c7198>,\n",
       " 422203: <__main__.user_seq at 0x1b7803c7080>,\n",
       " 491162: <__main__.user_seq at 0x1b7803c70b8>,\n",
       " 392276: <__main__.user_seq at 0x1b7803c7240>,\n",
       " 1119103: <__main__.user_seq at 0x1b7803c7400>,\n",
       " 493601: <__main__.user_seq at 0x1b7803c7550>,\n",
       " 987199: <__main__.user_seq at 0x1b7803c75c0>,\n",
       " 428929: <__main__.user_seq at 0x1b7803c7898>,\n",
       " 764894: <__main__.user_seq at 0x1b7803c75f8>,\n",
       " 901027: <__main__.user_seq at 0x1b7803c76a0>,\n",
       " 716335: <__main__.user_seq at 0x1b7803c7710>,\n",
       " 1132054: <__main__.user_seq at 0x1b7803c77f0>,\n",
       " 1201394: <__main__.user_seq at 0x1b7803c7860>,\n",
       " 79180: <__main__.user_seq at 0x1b7803c7828>,\n",
       " 363940: <__main__.user_seq at 0x1b7803c7748>,\n",
       " 1171561: <__main__.user_seq at 0x1b7803c77b8>,\n",
       " 29588: <__main__.user_seq at 0x1b7803c7780>,\n",
       " 225105: <__main__.user_seq at 0x1b7803c76d8>,\n",
       " 479488: <__main__.user_seq at 0x1b7803c7630>,\n",
       " 1349377: <__main__.user_seq at 0x1b7803c7668>,\n",
       " 755950: <__main__.user_seq at 0x1b7803c7588>,\n",
       " 867067: <__main__.user_seq at 0x1b7803c7438>,\n",
       " 1208320: <__main__.user_seq at 0x1b7803c74e0>,\n",
       " 644685: <__main__.user_seq at 0x1b7803c7518>,\n",
       " 580269: <__main__.user_seq at 0x1b7803c7470>,\n",
       " 1278006: <__main__.user_seq at 0x1b7803c74a8>,\n",
       " 900759: <__main__.user_seq at 0x1b7803c72b0>,\n",
       " 301088: <__main__.user_seq at 0x1b7803c7320>,\n",
       " 846124: <__main__.user_seq at 0x1b7803c73c8>,\n",
       " 873341: <__main__.user_seq at 0x1b7803c7358>,\n",
       " 373134: <__main__.user_seq at 0x1b7803c7390>,\n",
       " 547864: <__main__.user_seq at 0x1b7803c72e8>,\n",
       " 1145926: <__main__.user_seq at 0x1b7803c7278>,\n",
       " 741300: <__main__.user_seq at 0x1b7803c78d0>,\n",
       " 685607: <__main__.user_seq at 0x1b7803c7908>,\n",
       " 1096768: <__main__.user_seq at 0x1b7803c7940>,\n",
       " 544078: <__main__.user_seq at 0x1b7803c7a90>,\n",
       " 500537: <__main__.user_seq at 0x1b7803c7b00>,\n",
       " 1126528: <__main__.user_seq at 0x1b7803c79e8>,\n",
       " 470633: <__main__.user_seq at 0x1b7803c7978>,\n",
       " 1260044: <__main__.user_seq at 0x1b7803c79b0>,\n",
       " 1147129: <__main__.user_seq at 0x1b7803c7ac8>,\n",
       " 708206: <__main__.user_seq at 0x1b7803c7b38>,\n",
       " 578505: <__main__.user_seq at 0x1b7803c7b70>,\n",
       " 473398: <__main__.user_seq at 0x1b7803c7ba8>,\n",
       " 805787: <__main__.user_seq at 0x1b7803c7be0>,\n",
       " 905493: <__main__.user_seq at 0x1b7803c7c18>,\n",
       " 706631: <__main__.user_seq at 0x1b7803c7c50>,\n",
       " 875685: <__main__.user_seq at 0x1b7803c7c88>,\n",
       " 969252: <__main__.user_seq at 0x1b7803c7cc0>,\n",
       " 24482: <__main__.user_seq at 0x1b7803c7cf8>,\n",
       " 935166: <__main__.user_seq at 0x1b7803c7d30>,\n",
       " 1316877: <__main__.user_seq at 0x1b7803c7d68>,\n",
       " 1163109: <__main__.user_seq at 0x1b7803c7da0>,\n",
       " 657176: <__main__.user_seq at 0x1b7803c7dd8>,\n",
       " 1024790: <__main__.user_seq at 0x1b7803c7e10>,\n",
       " 1216256: <__main__.user_seq at 0x1b7803c7e48>,\n",
       " 908794: <__main__.user_seq at 0x1b7803c7e80>,\n",
       " 154609: <__main__.user_seq at 0x1b7803c7eb8>,\n",
       " 1283254: <__main__.user_seq at 0x1b7803c7ef0>,\n",
       " 498488: <__main__.user_seq at 0x1b7803c7f28>,\n",
       " 969395: <__main__.user_seq at 0x1b7803c7f60>,\n",
       " 64315: <__main__.user_seq at 0x1b7803c7f98>,\n",
       " 354563: <__main__.user_seq at 0x1b7803c7fd0>,\n",
       " 1356592: <__main__.user_seq at 0x1b7803c8048>,\n",
       " 706245: <__main__.user_seq at 0x1b7803c8080>,\n",
       " 173080: <__main__.user_seq at 0x1b7803c80b8>,\n",
       " 315508: <__main__.user_seq at 0x1b7803c80f0>,\n",
       " 889586: <__main__.user_seq at 0x1b7803c8128>,\n",
       " 932852: <__main__.user_seq at 0x1b7803c8160>,\n",
       " 196795: <__main__.user_seq at 0x1b7803c8198>,\n",
       " 700459: <__main__.user_seq at 0x1b7803c81d0>,\n",
       " 784518: <__main__.user_seq at 0x1b7803c8208>,\n",
       " 1149160: <__main__.user_seq at 0x1b7803c8240>,\n",
       " 251319: <__main__.user_seq at 0x1b7803c8278>,\n",
       " 526703: <__main__.user_seq at 0x1b7803c82b0>,\n",
       " 320032: <__main__.user_seq at 0x1b7803c82e8>,\n",
       " 119327: <__main__.user_seq at 0x1b7803c8320>,\n",
       " 627445: <__main__.user_seq at 0x1b7803c8358>,\n",
       " 1333459: <__main__.user_seq at 0x1b7803c8390>,\n",
       " 588012: <__main__.user_seq at 0x1b7803c83c8>,\n",
       " 12034: <__main__.user_seq at 0x1b7803c8400>,\n",
       " 146820: <__main__.user_seq at 0x1b7803c8438>,\n",
       " 1243074: <__main__.user_seq at 0x1b7803c8470>,\n",
       " 271512: <__main__.user_seq at 0x1b7803c84a8>,\n",
       " 1257585: <__main__.user_seq at 0x1b7803c84e0>,\n",
       " 1124798: <__main__.user_seq at 0x1b7803c8518>,\n",
       " 82342: <__main__.user_seq at 0x1b7803c8550>,\n",
       " 1045093: <__main__.user_seq at 0x1b7803c8588>,\n",
       " 1087280: <__main__.user_seq at 0x1b7803c85c0>,\n",
       " 182906: <__main__.user_seq at 0x1b7803c85f8>,\n",
       " 934918: <__main__.user_seq at 0x1b7803c8630>,\n",
       " 856907: <__main__.user_seq at 0x1b7803c8668>,\n",
       " 564522: <__main__.user_seq at 0x1b7803c86a0>,\n",
       " 889866: <__main__.user_seq at 0x1b7803c86d8>,\n",
       " 986839: <__main__.user_seq at 0x1b7803c8710>,\n",
       " 551821: <__main__.user_seq at 0x1b7803c8748>,\n",
       " 988294: <__main__.user_seq at 0x1b7803c8780>,\n",
       " 1022936: <__main__.user_seq at 0x1b7803c87b8>,\n",
       " 349043: <__main__.user_seq at 0x1b7803c87f0>,\n",
       " 1010794: <__main__.user_seq at 0x1b7803c8828>,\n",
       " 1274576: <__main__.user_seq at 0x1b7803c8860>,\n",
       " 109973: <__main__.user_seq at 0x1b7803c8898>,\n",
       " 134299: <__main__.user_seq at 0x1b7803c88d0>,\n",
       " 1005835: <__main__.user_seq at 0x1b7803c8908>,\n",
       " 864582: <__main__.user_seq at 0x1b7803c8940>,\n",
       " 1293122: <__main__.user_seq at 0x1b7803c8978>,\n",
       " 896835: <__main__.user_seq at 0x1b7803c89b0>,\n",
       " 630631: <__main__.user_seq at 0x1b7803c89e8>,\n",
       " 1121791: <__main__.user_seq at 0x1b7803c8a20>,\n",
       " 1038314: <__main__.user_seq at 0x1b7803c8a58>,\n",
       " 123473: <__main__.user_seq at 0x1b7803c8a90>,\n",
       " 916883: <__main__.user_seq at 0x1b7803c8ac8>,\n",
       " 627561: <__main__.user_seq at 0x1b7803c8b00>,\n",
       " 1343228: <__main__.user_seq at 0x1b7803c8b38>,\n",
       " 1134049: <__main__.user_seq at 0x1b7803c8b70>,\n",
       " 1097140: <__main__.user_seq at 0x1b7803c8ba8>,\n",
       " 192598: <__main__.user_seq at 0x1b7803c8be0>,\n",
       " 1084176: <__main__.user_seq at 0x1b7803c8c18>,\n",
       " 699788: <__main__.user_seq at 0x1b7803c8c50>,\n",
       " 1206272: <__main__.user_seq at 0x1b7803c8c88>,\n",
       " 1357808: <__main__.user_seq at 0x1b7803c8cc0>,\n",
       " 879812: <__main__.user_seq at 0x1b7803c8cf8>,\n",
       " 178800: <__main__.user_seq at 0x1b7803c8d30>,\n",
       " 6142: <__main__.user_seq at 0x1b7803c8d68>,\n",
       " 744006: <__main__.user_seq at 0x1b7803c8da0>,\n",
       " 498016: <__main__.user_seq at 0x1b7803c8dd8>,\n",
       " 603422: <__main__.user_seq at 0x1b7803c8e10>,\n",
       " 817397: <__main__.user_seq at 0x1b7803c8e48>,\n",
       " 279797: <__main__.user_seq at 0x1b7803c8e80>,\n",
       " 42931: <__main__.user_seq at 0x1b7803c8eb8>,\n",
       " 477509: <__main__.user_seq at 0x1b7803c8ef0>,\n",
       " 768177: <__main__.user_seq at 0x1b7803c8f28>,\n",
       " 1275284: <__main__.user_seq at 0x1b7803c8f60>,\n",
       " 844601: <__main__.user_seq at 0x1b7803c8f98>,\n",
       " 82524: <__main__.user_seq at 0x1b7803c8fd0>,\n",
       " 73158: <__main__.user_seq at 0x1b7803dd048>,\n",
       " 1139294: <__main__.user_seq at 0x1b7803dd080>,\n",
       " 1102709: <__main__.user_seq at 0x1b7803dd0b8>,\n",
       " 52918: <__main__.user_seq at 0x1b7803dd0f0>,\n",
       " 85132: <__main__.user_seq at 0x1b7803dd128>,\n",
       " 23948: <__main__.user_seq at 0x1b7803dd160>,\n",
       " 201951: <__main__.user_seq at 0x1b7803dd198>,\n",
       " 343886: <__main__.user_seq at 0x1b7803dd1d0>,\n",
       " 671062: <__main__.user_seq at 0x1b7803dd208>,\n",
       " 1039738: <__main__.user_seq at 0x1b7803dd240>,\n",
       " 310025: <__main__.user_seq at 0x1b7803dd278>,\n",
       " 1266850: <__main__.user_seq at 0x1b7803dd2b0>,\n",
       " 590886: <__main__.user_seq at 0x1b7803dd2e8>,\n",
       " 942055: <__main__.user_seq at 0x1b7803dd320>,\n",
       " 694183: <__main__.user_seq at 0x1b7803dd358>,\n",
       " 1302790: <__main__.user_seq at 0x1b7803dd390>,\n",
       " 1352813: <__main__.user_seq at 0x1b7803dd3c8>,\n",
       " 219457: <__main__.user_seq at 0x1b7803dd400>,\n",
       " 1273778: <__main__.user_seq at 0x1b7803dd438>,\n",
       " 615136: <__main__.user_seq at 0x1b7803dd470>,\n",
       " 692306: <__main__.user_seq at 0x1b7803dd4a8>,\n",
       " 234824: <__main__.user_seq at 0x1b7803dd4e0>,\n",
       " 797113: <__main__.user_seq at 0x1b7803dd518>,\n",
       " 1168061: <__main__.user_seq at 0x1b7803dd550>,\n",
       " 933116: <__main__.user_seq at 0x1b7803dd588>,\n",
       " 675189: <__main__.user_seq at 0x1b7803dd5c0>,\n",
       " 117234: <__main__.user_seq at 0x1b7803dd5f8>,\n",
       " 473215: <__main__.user_seq at 0x1b7803dd630>,\n",
       " 693597: <__main__.user_seq at 0x1b7803dd668>,\n",
       " 292217: <__main__.user_seq at 0x1b7803dd6a0>,\n",
       " 318189: <__main__.user_seq at 0x1b7803dd6d8>,\n",
       " 893024: <__main__.user_seq at 0x1b7803dd710>,\n",
       " 1147778: <__main__.user_seq at 0x1b7803dd748>,\n",
       " 75464: <__main__.user_seq at 0x1b7803dd780>,\n",
       " 355948: <__main__.user_seq at 0x1b7803dd7b8>,\n",
       " 1141243: <__main__.user_seq at 0x1b7803dd7f0>,\n",
       " 885314: <__main__.user_seq at 0x1b7803dd828>,\n",
       " 473037: <__main__.user_seq at 0x1b7803dd860>,\n",
       " 1161976: <__main__.user_seq at 0x1b7803dd898>,\n",
       " 1105249: <__main__.user_seq at 0x1b7803dd8d0>,\n",
       " 1034711: <__main__.user_seq at 0x1b7803dd908>,\n",
       " 444663: <__main__.user_seq at 0x1b7803dd940>,\n",
       " 629789: <__main__.user_seq at 0x1b7803dd978>,\n",
       " 684292: <__main__.user_seq at 0x1b7803dd9b0>,\n",
       " 1220188: <__main__.user_seq at 0x1b7803dd9e8>,\n",
       " 38479: <__main__.user_seq at 0x1b7803dda20>,\n",
       " 1166260: <__main__.user_seq at 0x1b7803dda58>,\n",
       " 739798: <__main__.user_seq at 0x1b7803dda90>,\n",
       " 1023596: <__main__.user_seq at 0x1b7803ddac8>,\n",
       " 731282: <__main__.user_seq at 0x1b7803ddb00>,\n",
       " 759110: <__main__.user_seq at 0x1b7803ddb38>,\n",
       " 327708: <__main__.user_seq at 0x1b7803ddb70>,\n",
       " 129695: <__main__.user_seq at 0x1b7803ddba8>,\n",
       " 1344791: <__main__.user_seq at 0x1b7803ddbe0>,\n",
       " 1096813: <__main__.user_seq at 0x1b7803ddc18>,\n",
       " 848341: <__main__.user_seq at 0x1b7803ddc50>,\n",
       " 1068843: <__main__.user_seq at 0x1b7803ddc88>,\n",
       " 419912: <__main__.user_seq at 0x1b7803ddcc0>,\n",
       " 823586: <__main__.user_seq at 0x1b7803ddcf8>,\n",
       " 296386: <__main__.user_seq at 0x1b7803ddd30>,\n",
       " 1161945: <__main__.user_seq at 0x1b7803ddd68>,\n",
       " 200400: <__main__.user_seq at 0x1b7803ddda0>,\n",
       " 1195373: <__main__.user_seq at 0x1b7803dddd8>,\n",
       " 973391: <__main__.user_seq at 0x1b7803dde10>,\n",
       " 65575: <__main__.user_seq at 0x1b7803dde48>,\n",
       " 837576: <__main__.user_seq at 0x1b7803dde80>,\n",
       " 298119: <__main__.user_seq at 0x1b7803ddeb8>,\n",
       " 1358198: <__main__.user_seq at 0x1b7803ddef0>,\n",
       " 375546: <__main__.user_seq at 0x1b7803ddf28>,\n",
       " 544646: <__main__.user_seq at 0x1b7803ddf60>,\n",
       " 607849: <__main__.user_seq at 0x1b7803ddf98>,\n",
       " 354025: <__main__.user_seq at 0x1b7803ddfd0>,\n",
       " 1331521: <__main__.user_seq at 0x1b7803e4048>,\n",
       " 1191566: <__main__.user_seq at 0x1b7803e4080>,\n",
       " 199629: <__main__.user_seq at 0x1b7803e40b8>,\n",
       " 1236008: <__main__.user_seq at 0x1b7803e40f0>,\n",
       " 214542: <__main__.user_seq at 0x1b7802822e8>,\n",
       " 350622: <__main__.user_seq at 0x1b780282898>,\n",
       " 190614: <__main__.user_seq at 0x1b780282320>,\n",
       " 964475: <__main__.user_seq at 0x1b780282198>,\n",
       " 45704: <__main__.user_seq at 0x1b780282630>,\n",
       " 878391: <__main__.user_seq at 0x1b780282fd0>,\n",
       " 1105526: <__main__.user_seq at 0x1b7eb5c60b8>,\n",
       " 164445: <__main__.user_seq at 0x1b7803e4160>,\n",
       " 488255: <__main__.user_seq at 0x1b7803e4128>,\n",
       " 143944: <__main__.user_seq at 0x1b7803e4198>,\n",
       " 802240: <__main__.user_seq at 0x1b7803e41d0>,\n",
       " 1314381: <__main__.user_seq at 0x1b7803e4208>,\n",
       " 863520: <__main__.user_seq at 0x1b7803e4240>,\n",
       " 322780: <__main__.user_seq at 0x1b7eb857908>,\n",
       " 1115620: <__main__.user_seq at 0x1b7e8388ac8>,\n",
       " 1004240: <__main__.user_seq at 0x1b7803e4278>,\n",
       " 91631: <__main__.user_seq at 0x1b7803e42b0>,\n",
       " 1306292: <__main__.user_seq at 0x1b7803e42e8>,\n",
       " 305295: <__main__.user_seq at 0x1b7803e4320>,\n",
       " 46877: <__main__.user_seq at 0x1b7803e4358>,\n",
       " 1366339: <__main__.user_seq at 0x1b7803e4390>,\n",
       " 1055951: <__main__.user_seq at 0x1b7803e43c8>,\n",
       " 1186938: <__main__.user_seq at 0x1b7803e4400>,\n",
       " 253904: <__main__.user_seq at 0x1b7803e4438>,\n",
       " 78349: <__main__.user_seq at 0x1b7803e4470>,\n",
       " 1260188: <__main__.user_seq at 0x1b7803e44a8>,\n",
       " 1016609: <__main__.user_seq at 0x1b7803e44e0>,\n",
       " 993751: <__main__.user_seq at 0x1b7803e4518>,\n",
       " 826191: <__main__.user_seq at 0x1b7803e4550>,\n",
       " 1042464: <__main__.user_seq at 0x1b7803e4588>,\n",
       " 600907: <__main__.user_seq at 0x1b7803e45c0>,\n",
       " 75238: <__main__.user_seq at 0x1b7803e45f8>,\n",
       " 600462: <__main__.user_seq at 0x1b7803e4630>,\n",
       " 43426: <__main__.user_seq at 0x1b7803e4668>,\n",
       " 1016709: <__main__.user_seq at 0x1b7803e46a0>,\n",
       " 1076150: <__main__.user_seq at 0x1b7803e46d8>,\n",
       " 861690: <__main__.user_seq at 0x1b7803e4710>,\n",
       " 1346568: <__main__.user_seq at 0x1b7803e4748>,\n",
       " 461873: <__main__.user_seq at 0x1b7803e4780>,\n",
       " 1102232: <__main__.user_seq at 0x1b7803e47b8>,\n",
       " 1056760: <__main__.user_seq at 0x1b7803e47f0>,\n",
       " 1360047: <__main__.user_seq at 0x1b7803e4828>,\n",
       " 548821: <__main__.user_seq at 0x1b7803e4860>,\n",
       " 525224: <__main__.user_seq at 0x1b7803e4898>,\n",
       " 626427: <__main__.user_seq at 0x1b7803e48d0>,\n",
       " 354599: <__main__.user_seq at 0x1b7803e4908>,\n",
       " 892684: <__main__.user_seq at 0x1b7803e4940>,\n",
       " 294385: <__main__.user_seq at 0x1b7803e4978>,\n",
       " 488384: <__main__.user_seq at 0x1b7803e49b0>,\n",
       " 1127998: <__main__.user_seq at 0x1b7803e49e8>,\n",
       " 171819: <__main__.user_seq at 0x1b7803e4a20>,\n",
       " 1197226: <__main__.user_seq at 0x1b7803e4a58>,\n",
       " 66852: <__main__.user_seq at 0x1b7803e4a90>,\n",
       " 1111524: <__main__.user_seq at 0x1b7803e4ac8>,\n",
       " 1103093: <__main__.user_seq at 0x1b7803e4b00>,\n",
       " 166587: <__main__.user_seq at 0x1b7803e4b38>,\n",
       " 1090147: <__main__.user_seq at 0x1b7803e4b70>,\n",
       " 401543: <__main__.user_seq at 0x1b7803e4ba8>,\n",
       " 979232: <__main__.user_seq at 0x1b7803e4be0>,\n",
       " 1079600: <__main__.user_seq at 0x1b7803e4c18>,\n",
       " 231285: <__main__.user_seq at 0x1b7803e4c50>,\n",
       " 909695: <__main__.user_seq at 0x1b7803e4c88>,\n",
       " 259356: <__main__.user_seq at 0x1b7803e4cc0>,\n",
       " 482351: <__main__.user_seq at 0x1b7803e4cf8>,\n",
       " 45605: <__main__.user_seq at 0x1b7803e4d30>,\n",
       " 1308171: <__main__.user_seq at 0x1b7803e4d68>,\n",
       " 307872: <__main__.user_seq at 0x1b7803e4da0>,\n",
       " 308051: <__main__.user_seq at 0x1b7803e4dd8>,\n",
       " 491446: <__main__.user_seq at 0x1b7803e4e10>,\n",
       " 550643: <__main__.user_seq at 0x1b7803e4e48>,\n",
       " 347099: <__main__.user_seq at 0x1b7803e4e80>,\n",
       " 647478: <__main__.user_seq at 0x1b7803e4eb8>,\n",
       " 1351534: <__main__.user_seq at 0x1b7803e4ef0>,\n",
       " 367241: <__main__.user_seq at 0x1b7803e4f28>,\n",
       " 578309: <__main__.user_seq at 0x1b7803e4f60>,\n",
       " 410784: <__main__.user_seq at 0x1b7803e4f98>,\n",
       " 374871: <__main__.user_seq at 0x1b7803e4fd0>,\n",
       " 820690: <__main__.user_seq at 0x1b7803ec048>,\n",
       " 80545: <__main__.user_seq at 0x1b7803ec080>,\n",
       " 482040: <__main__.user_seq at 0x1b7803ec0b8>,\n",
       " 660628: <__main__.user_seq at 0x1b7803ec0f0>,\n",
       " 657616: <__main__.user_seq at 0x1b7803ec128>,\n",
       " 406622: <__main__.user_seq at 0x1b7803ec160>,\n",
       " 46519: <__main__.user_seq at 0x1b7803ec198>,\n",
       " 440020: <__main__.user_seq at 0x1b7803ec1d0>,\n",
       " 838388: <__main__.user_seq at 0x1b7803ec208>,\n",
       " 372368: <__main__.user_seq at 0x1b7803ec240>,\n",
       " 1028559: <__main__.user_seq at 0x1b7803ec278>,\n",
       " 1014699: <__main__.user_seq at 0x1b7803ec2b0>,\n",
       " 311119: <__main__.user_seq at 0x1b7803ec2e8>,\n",
       " 540632: <__main__.user_seq at 0x1b7803ec320>,\n",
       " 1174064: <__main__.user_seq at 0x1b7803ec358>,\n",
       " 1288325: <__main__.user_seq at 0x1b7803ec390>,\n",
       " 574156: <__main__.user_seq at 0x1b7803ec3c8>,\n",
       " 277490: <__main__.user_seq at 0x1b7803ec400>,\n",
       " 1359548: <__main__.user_seq at 0x1b7803ec438>,\n",
       " 853695: <__main__.user_seq at 0x1b7803ec470>,\n",
       " 53864: <__main__.user_seq at 0x1b7803ec4a8>,\n",
       " 158030: <__main__.user_seq at 0x1b7803ec4e0>,\n",
       " 497272: <__main__.user_seq at 0x1b7803ec518>,\n",
       " 699878: <__main__.user_seq at 0x1b7803ec550>,\n",
       " 908320: <__main__.user_seq at 0x1b7803ec588>,\n",
       " 747066: <__main__.user_seq at 0x1b7803ec5c0>,\n",
       " 294696: <__main__.user_seq at 0x1b7803ec5f8>,\n",
       " 307612: <__main__.user_seq at 0x1b7803ec630>,\n",
       " 1046782: <__main__.user_seq at 0x1b7803ec668>,\n",
       " 47841: <__main__.user_seq at 0x1b7803ec6a0>,\n",
       " 738018: <__main__.user_seq at 0x1b7803ec6d8>,\n",
       " 241058: <__main__.user_seq at 0x1b7803ec710>,\n",
       " 1014282: <__main__.user_seq at 0x1b7803ec748>,\n",
       " 1293090: <__main__.user_seq at 0x1b7803ec780>,\n",
       " 1180298: <__main__.user_seq at 0x1b7803ec7b8>,\n",
       " 436733: <__main__.user_seq at 0x1b7803ec7f0>,\n",
       " 547218: <__main__.user_seq at 0x1b7803ec828>,\n",
       " 380844: <__main__.user_seq at 0x1b7803ec860>,\n",
       " 1266749: <__main__.user_seq at 0x1b7803ec898>,\n",
       " 130330: <__main__.user_seq at 0x1b7803ec8d0>,\n",
       " 1277184: <__main__.user_seq at 0x1b7803ec908>,\n",
       " 726068: <__main__.user_seq at 0x1b7803ec940>,\n",
       " 801739: <__main__.user_seq at 0x1b7803ec978>,\n",
       " 1171263: <__main__.user_seq at 0x1b7803ec9b0>,\n",
       " 427082: <__main__.user_seq at 0x1b7803ec9e8>,\n",
       " 856947: <__main__.user_seq at 0x1b7803eca20>,\n",
       " 1083614: <__main__.user_seq at 0x1b7803eca58>,\n",
       " 1043223: <__main__.user_seq at 0x1b7803eca90>,\n",
       " 772432: <__main__.user_seq at 0x1b7803ecac8>,\n",
       " 1100998: <__main__.user_seq at 0x1b7803ecb00>,\n",
       " 635545: <__main__.user_seq at 0x1b7803ecb38>,\n",
       " 263338: <__main__.user_seq at 0x1b7803ecb70>,\n",
       " 1010055: <__main__.user_seq at 0x1b7803ecba8>,\n",
       " 452297: <__main__.user_seq at 0x1b7803ecbe0>,\n",
       " 849233: <__main__.user_seq at 0x1b7803ecc18>,\n",
       " 1232419: <__main__.user_seq at 0x1b7803ecc50>,\n",
       " 149945: <__main__.user_seq at 0x1b7803ecc88>,\n",
       " 625544: <__main__.user_seq at 0x1b7803eccc0>,\n",
       " 1248579: <__main__.user_seq at 0x1b7803eccf8>,\n",
       " 539818: <__main__.user_seq at 0x1b7803ecd30>,\n",
       " 1071059: <__main__.user_seq at 0x1b7803ecd68>,\n",
       " 1348111: <__main__.user_seq at 0x1b7803ecda0>,\n",
       " 696972: <__main__.user_seq at 0x1b7803ecdd8>,\n",
       " 941328: <__main__.user_seq at 0x1b7803ece10>,\n",
       " 676679: <__main__.user_seq at 0x1b7803ece48>,\n",
       " 1219114: <__main__.user_seq at 0x1b7803ece80>,\n",
       " 292238: <__main__.user_seq at 0x1b7803eceb8>,\n",
       " 771775: <__main__.user_seq at 0x1b7803ecef0>,\n",
       " 1228553: <__main__.user_seq at 0x1b7803ecf28>,\n",
       " 614233: <__main__.user_seq at 0x1b7803ecf60>,\n",
       " 95904: <__main__.user_seq at 0x1b7803ecf98>,\n",
       " 270665: <__main__.user_seq at 0x1b7803ecfd0>,\n",
       " 109064: <__main__.user_seq at 0x1b7803f3048>,\n",
       " 1094001: <__main__.user_seq at 0x1b7803f3080>,\n",
       " 828445: <__main__.user_seq at 0x1b7803f30b8>,\n",
       " 990078: <__main__.user_seq at 0x1b7803f30f0>,\n",
       " 707687: <__main__.user_seq at 0x1b7803f3128>,\n",
       " 311009: <__main__.user_seq at 0x1b7803f3160>,\n",
       " 361304: <__main__.user_seq at 0x1b7803f3198>,\n",
       " 18169: <__main__.user_seq at 0x1b7803f31d0>,\n",
       " 109313: <__main__.user_seq at 0x1b7803f3208>,\n",
       " 184915: <__main__.user_seq at 0x1b7803f3240>,\n",
       " 1138461: <__main__.user_seq at 0x1b7803f3278>,\n",
       " 787356: <__main__.user_seq at 0x1b7803f32b0>,\n",
       " 252311: <__main__.user_seq at 0x1b7803f32e8>,\n",
       " 57795: <__main__.user_seq at 0x1b7803f3320>,\n",
       " 516178: <__main__.user_seq at 0x1b7803f3358>,\n",
       " 405637: <__main__.user_seq at 0x1b7803f3390>,\n",
       " 1363368: <__main__.user_seq at 0x1b7803f33c8>,\n",
       " 1196704: <__main__.user_seq at 0x1b7803f3400>,\n",
       " 68485: <__main__.user_seq at 0x1b7803f3438>,\n",
       " 322656: <__main__.user_seq at 0x1b7803f3470>,\n",
       " 977835: <__main__.user_seq at 0x1b7803f34a8>,\n",
       " 1277123: <__main__.user_seq at 0x1b7803f34e0>,\n",
       " 424062: <__main__.user_seq at 0x1b7803f3518>,\n",
       " 250174: <__main__.user_seq at 0x1b7803f3550>,\n",
       " 1023526: <__main__.user_seq at 0x1b7803f3588>,\n",
       " 449597: <__main__.user_seq at 0x1b7803f35c0>,\n",
       " 384182: <__main__.user_seq at 0x1b7803f35f8>,\n",
       " 50084: <__main__.user_seq at 0x1b7803f3630>,\n",
       " 118144: <__main__.user_seq at 0x1b7803f3668>,\n",
       " 1254191: <__main__.user_seq at 0x1b7803f36a0>,\n",
       " 348563: <__main__.user_seq at 0x1b7803f36d8>,\n",
       " 1282349: <__main__.user_seq at 0x1b7803f3710>,\n",
       " 179263: <__main__.user_seq at 0x1b7803f3748>,\n",
       " 1095381: <__main__.user_seq at 0x1b7803f3780>,\n",
       " 911986: <__main__.user_seq at 0x1b7803f37b8>,\n",
       " 1201628: <__main__.user_seq at 0x1b7803f37f0>,\n",
       " 1323759: <__main__.user_seq at 0x1b7803f3828>,\n",
       " 281753: <__main__.user_seq at 0x1b7803f3860>,\n",
       " 1246728: <__main__.user_seq at 0x1b7803f3898>,\n",
       " 1280301: <__main__.user_seq at 0x1b7803f38d0>,\n",
       " 403903: <__main__.user_seq at 0x1b7803f3908>,\n",
       " 456923: <__main__.user_seq at 0x1b7803f3940>,\n",
       " 1165819: <__main__.user_seq at 0x1b7803f3978>,\n",
       " 452121: <__main__.user_seq at 0x1b7803f39b0>,\n",
       " 356773: <__main__.user_seq at 0x1b7803f39e8>,\n",
       " 1362089: <__main__.user_seq at 0x1b7803f3a20>,\n",
       " 767634: <__main__.user_seq at 0x1b7803f3a58>,\n",
       " 254346: <__main__.user_seq at 0x1b7803f3a90>,\n",
       " 479405: <__main__.user_seq at 0x1b7803f3ac8>,\n",
       " 44820: <__main__.user_seq at 0x1b7803f3b00>,\n",
       " 213980: <__main__.user_seq at 0x1b7803f3b38>,\n",
       " 502744: <__main__.user_seq at 0x1b7803f3b70>,\n",
       " 134649: <__main__.user_seq at 0x1b7803f3ba8>,\n",
       " 146827: <__main__.user_seq at 0x1b7803f3be0>,\n",
       " 1026933: <__main__.user_seq at 0x1b7803f3c18>,\n",
       " 466945: <__main__.user_seq at 0x1b7803f3c50>,\n",
       " 910932: <__main__.user_seq at 0x1b7803f3c88>,\n",
       " 971619: <__main__.user_seq at 0x1b7803f3cc0>,\n",
       " 621028: <__main__.user_seq at 0x1b7803f3cf8>,\n",
       " 991248: <__main__.user_seq at 0x1b7803f3d30>,\n",
       " 60028: <__main__.user_seq at 0x1b7803f3d68>,\n",
       " 437170: <__main__.user_seq at 0x1b7803f3da0>,\n",
       " 421320: <__main__.user_seq at 0x1b7803f3dd8>,\n",
       " 69464: <__main__.user_seq at 0x1b7803f3e10>,\n",
       " 676314: <__main__.user_seq at 0x1b7803f3e48>,\n",
       " 254269: <__main__.user_seq at 0x1b7803f3e80>,\n",
       " 803095: <__main__.user_seq at 0x1b7803f3eb8>,\n",
       " 379784: <__main__.user_seq at 0x1b7803f3ef0>,\n",
       " 810769: <__main__.user_seq at 0x1b7803f3f28>,\n",
       " 115700: <__main__.user_seq at 0x1b7803f3f60>,\n",
       " 282099: <__main__.user_seq at 0x1b7803f3f98>,\n",
       " 935412: <__main__.user_seq at 0x1b7803f3fd0>,\n",
       " 888078: <__main__.user_seq at 0x1b7803fb048>,\n",
       " 1161970: <__main__.user_seq at 0x1b7803fb080>,\n",
       " 254443: <__main__.user_seq at 0x1b7803fb0b8>,\n",
       " 820184: <__main__.user_seq at 0x1b7803fb0f0>,\n",
       " 52445: <__main__.user_seq at 0x1b7803fb128>,\n",
       " 739438: <__main__.user_seq at 0x1b7803fb160>,\n",
       " 258311: <__main__.user_seq at 0x1b7803fb198>,\n",
       " 399174: <__main__.user_seq at 0x1b7803fb1d0>,\n",
       " 776599: <__main__.user_seq at 0x1b7803fb208>,\n",
       " 818384: <__main__.user_seq at 0x1b7803fb240>,\n",
       " 1365488: <__main__.user_seq at 0x1b7803fb278>,\n",
       " 124486: <__main__.user_seq at 0x1b7803fb2b0>,\n",
       " 464769: <__main__.user_seq at 0x1b7803fb2e8>,\n",
       " 374698: <__main__.user_seq at 0x1b7803fb320>,\n",
       " 863663: <__main__.user_seq at 0x1b7803fb358>,\n",
       " 997843: <__main__.user_seq at 0x1b7803fb390>,\n",
       " 1060779: <__main__.user_seq at 0x1b7803fb3c8>,\n",
       " 298288: <__main__.user_seq at 0x1b7803fb400>,\n",
       " 538392: <__main__.user_seq at 0x1b7803fb438>,\n",
       " 478546: <__main__.user_seq at 0x1b7803fb470>,\n",
       " 934317: <__main__.user_seq at 0x1b7803fb4a8>,\n",
       " 1037223: <__main__.user_seq at 0x1b7803fb4e0>,\n",
       " 75456: <__main__.user_seq at 0x1b7803fb518>,\n",
       " 49913: <__main__.user_seq at 0x1b7803fb550>,\n",
       " 180441: <__main__.user_seq at 0x1b7803fb588>,\n",
       " 915432: <__main__.user_seq at 0x1b7803fb5c0>,\n",
       " 265620: <__main__.user_seq at 0x1b7803fb5f8>,\n",
       " 1292525: <__main__.user_seq at 0x1b7803fb630>,\n",
       " 314899: <__main__.user_seq at 0x1b7803fb668>,\n",
       " 472147: <__main__.user_seq at 0x1b7803fb6a0>,\n",
       " 871404: <__main__.user_seq at 0x1b7803fb6d8>,\n",
       " 1011297: <__main__.user_seq at 0x1b7803fb710>,\n",
       " 711978: <__main__.user_seq at 0x1b7803fb748>,\n",
       " 142200: <__main__.user_seq at 0x1b7803fb780>,\n",
       " 744880: <__main__.user_seq at 0x1b7803fb7b8>,\n",
       " 1196482: <__main__.user_seq at 0x1b7803fb7f0>,\n",
       " 613158: <__main__.user_seq at 0x1b7803fb828>,\n",
       " 385230: <__main__.user_seq at 0x1b7803fb860>,\n",
       " 757343: <__main__.user_seq at 0x1b7803fb898>,\n",
       " 718863: <__main__.user_seq at 0x1b7803fb8d0>,\n",
       " 1306243: <__main__.user_seq at 0x1b7803fb908>,\n",
       " 494108: <__main__.user_seq at 0x1b7803fb940>,\n",
       " 292670: <__main__.user_seq at 0x1b7803fb978>,\n",
       " 810664: <__main__.user_seq at 0x1b7803fb9b0>,\n",
       " 145531: <__main__.user_seq at 0x1b7803fb9e8>,\n",
       " 1204979: <__main__.user_seq at 0x1b7803fba20>,\n",
       " 1007878: <__main__.user_seq at 0x1b7803fba58>,\n",
       " 429640: <__main__.user_seq at 0x1b7803fba90>,\n",
       " 408945: <__main__.user_seq at 0x1b7803fbac8>,\n",
       " 1102438: <__main__.user_seq at 0x1b7803fbb00>,\n",
       " 466836: <__main__.user_seq at 0x1b7803fbb38>,\n",
       " 496107: <__main__.user_seq at 0x1b7803fbb70>,\n",
       " 1222898: <__main__.user_seq at 0x1b7803fbba8>,\n",
       " 166312: <__main__.user_seq at 0x1b7803fbbe0>,\n",
       " 421532: <__main__.user_seq at 0x1b7803fbc18>,\n",
       " 1246316: <__main__.user_seq at 0x1b7803fbc50>,\n",
       " 1136225: <__main__.user_seq at 0x1b7803c1828>,\n",
       " 54409: <__main__.user_seq at 0x1b7803fbcc0>,\n",
       " 1355576: <__main__.user_seq at 0x1b7803fbcf8>,\n",
       " 1210417: <__main__.user_seq at 0x1b7803fbd30>,\n",
       " 1306727: <__main__.user_seq at 0x1b7803fbd68>,\n",
       " 74795: <__main__.user_seq at 0x1b7803fbda0>,\n",
       " 277129: <__main__.user_seq at 0x1b7803fbdd8>,\n",
       " 566363: <__main__.user_seq at 0x1b7803fbe10>,\n",
       " 938471: <__main__.user_seq at 0x1b7803fbe48>,\n",
       " 854397: <__main__.user_seq at 0x1b7803fbe80>,\n",
       " 916651: <__main__.user_seq at 0x1b7803fbeb8>,\n",
       " 563921: <__main__.user_seq at 0x1b7803fbef0>,\n",
       " 834452: <__main__.user_seq at 0x1b7803fbf28>,\n",
       " 73231: <__main__.user_seq at 0x1b7803fbf60>,\n",
       " 271320: <__main__.user_seq at 0x1b7803fbf98>,\n",
       " 669733: <__main__.user_seq at 0x1b7803fbfd0>,\n",
       " 1233955: <__main__.user_seq at 0x1b780402048>,\n",
       " 344986: <__main__.user_seq at 0x1b780402080>,\n",
       " 938665: <__main__.user_seq at 0x1b7804020b8>,\n",
       " 1236803: <__main__.user_seq at 0x1b7804020f0>,\n",
       " 1351499: <__main__.user_seq at 0x1b780402128>,\n",
       " 637808: <__main__.user_seq at 0x1b780402160>,\n",
       " 293848: <__main__.user_seq at 0x1b780402198>,\n",
       " 513125: <__main__.user_seq at 0x1b7804021d0>,\n",
       " 691108: <__main__.user_seq at 0x1b780402208>,\n",
       " 160727: <__main__.user_seq at 0x1b780402240>,\n",
       " 596133: <__main__.user_seq at 0x1b780402278>,\n",
       " 739435: <__main__.user_seq at 0x1b7804022b0>,\n",
       " 896365: <__main__.user_seq at 0x1b7804022e8>,\n",
       " 637043: <__main__.user_seq at 0x1b780402320>,\n",
       " 1073967: <__main__.user_seq at 0x1b780402358>,\n",
       " 147719: <__main__.user_seq at 0x1b780402390>,\n",
       " 1185725: <__main__.user_seq at 0x1b7804023c8>,\n",
       " 96837: <__main__.user_seq at 0x1b780402400>,\n",
       " 936980: <__main__.user_seq at 0x1b780402438>,\n",
       " 504530: <__main__.user_seq at 0x1b780402470>,\n",
       " 1321156: <__main__.user_seq at 0x1b7804024a8>,\n",
       " 1266591: <__main__.user_seq at 0x1b7804024e0>,\n",
       " 439287: <__main__.user_seq at 0x1b780402518>,\n",
       " 1118764: <__main__.user_seq at 0x1b780402550>,\n",
       " 93998: <__main__.user_seq at 0x1b780402588>,\n",
       " 970095: <__main__.user_seq at 0x1b7804025c0>,\n",
       " 371858: <__main__.user_seq at 0x1b7804025f8>,\n",
       " 1066803: <__main__.user_seq at 0x1b780402630>,\n",
       " 1216582: <__main__.user_seq at 0x1b780402668>,\n",
       " 1178385: <__main__.user_seq at 0x1b7804026a0>,\n",
       " 402989: <__main__.user_seq at 0x1b7804026d8>,\n",
       " 355400: <__main__.user_seq at 0x1b780402710>,\n",
       " 871022: <__main__.user_seq at 0x1b780402748>,\n",
       " 243472: <__main__.user_seq at 0x1b780402780>,\n",
       " 1230981: <__main__.user_seq at 0x1b7804027b8>,\n",
       " 1238233: <__main__.user_seq at 0x1b7804027f0>,\n",
       " 791615: <__main__.user_seq at 0x1b780402828>,\n",
       " 182433: <__main__.user_seq at 0x1b780402860>,\n",
       " 217197: <__main__.user_seq at 0x1b780402898>,\n",
       " 1008941: <__main__.user_seq at 0x1b7804028d0>,\n",
       " 993515: <__main__.user_seq at 0x1b780402908>,\n",
       " 799592: <__main__.user_seq at 0x1b780402940>,\n",
       " 754235: <__main__.user_seq at 0x1b780402978>,\n",
       " 337538: <__main__.user_seq at 0x1b7804029b0>,\n",
       " 602426: <__main__.user_seq at 0x1b7804029e8>,\n",
       " 175900: <__main__.user_seq at 0x1b780402a20>,\n",
       " 320121: <__main__.user_seq at 0x1b780402a58>,\n",
       " 1366497: <__main__.user_seq at 0x1b780402a90>,\n",
       " 543569: <__main__.user_seq at 0x1b780402ac8>,\n",
       " 904710: <__main__.user_seq at 0x1b780402b00>,\n",
       " 203323: <__main__.user_seq at 0x1b780402b38>,\n",
       " 320114: <__main__.user_seq at 0x1b780402b70>,\n",
       " 1191863: <__main__.user_seq at 0x1b780402ba8>,\n",
       " 748064: <__main__.user_seq at 0x1b780402be0>,\n",
       " 701132: <__main__.user_seq at 0x1b780402c18>,\n",
       " 483305: <__main__.user_seq at 0x1b780402c50>,\n",
       " 1258028: <__main__.user_seq at 0x1b780402c88>,\n",
       " 139133: <__main__.user_seq at 0x1b780402cc0>,\n",
       " 550148: <__main__.user_seq at 0x1b780402cf8>,\n",
       " 189467: <__main__.user_seq at 0x1b780402d30>,\n",
       " 903667: <__main__.user_seq at 0x1b780402d68>,\n",
       " 1292561: <__main__.user_seq at 0x1b780402da0>,\n",
       " 170749: <__main__.user_seq at 0x1b780402dd8>,\n",
       " 728794: <__main__.user_seq at 0x1b780402e10>,\n",
       " 469140: <__main__.user_seq at 0x1b780402e48>,\n",
       " 1096939: <__main__.user_seq at 0x1b780402e80>,\n",
       " 326478: <__main__.user_seq at 0x1b780402eb8>,\n",
       " 835126: <__main__.user_seq at 0x1b780402ef0>,\n",
       " 820632: <__main__.user_seq at 0x1b780402f28>,\n",
       " 646235: <__main__.user_seq at 0x1b780402f60>,\n",
       " 263285: <__main__.user_seq at 0x1b780402f98>,\n",
       " 1144331: <__main__.user_seq at 0x1b780402fd0>,\n",
       " 453242: <__main__.user_seq at 0x1b780408048>,\n",
       " 99881: <__main__.user_seq at 0x1b780408080>,\n",
       " 917900: <__main__.user_seq at 0x1b7804080b8>,\n",
       " 146933: <__main__.user_seq at 0x1b7804080f0>,\n",
       " 1008924: <__main__.user_seq at 0x1b780408128>,\n",
       " 366221: <__main__.user_seq at 0x1b780408160>,\n",
       " 26106: <__main__.user_seq at 0x1b780408198>,\n",
       " 783466: <__main__.user_seq at 0x1b7804081d0>,\n",
       " 720247: <__main__.user_seq at 0x1b780408208>,\n",
       " 1009437: <__main__.user_seq at 0x1b780408240>,\n",
       " 126280: <__main__.user_seq at 0x1b780408278>,\n",
       " 548663: <__main__.user_seq at 0x1b7804082b0>,\n",
       " 285799: <__main__.user_seq at 0x1b7804082e8>,\n",
       " 1146343: <__main__.user_seq at 0x1b780408320>,\n",
       " 322359: <__main__.user_seq at 0x1b780408358>,\n",
       " 379945: <__main__.user_seq at 0x1b780408390>,\n",
       " 287052: <__main__.user_seq at 0x1b7804083c8>,\n",
       " 738596: <__main__.user_seq at 0x1b780408400>,\n",
       " 171433: <__main__.user_seq at 0x1b780408438>,\n",
       " 506097: <__main__.user_seq at 0x1b780408470>,\n",
       " 318129: <__main__.user_seq at 0x1b7804084a8>,\n",
       " 794962: <__main__.user_seq at 0x1b7804084e0>,\n",
       " 899174: <__main__.user_seq at 0x1b780408518>,\n",
       " 584395: <__main__.user_seq at 0x1b780408550>,\n",
       " 1225499: <__main__.user_seq at 0x1b780408588>,\n",
       " 819009: <__main__.user_seq at 0x1b7804085c0>,\n",
       " 819371: <__main__.user_seq at 0x1b7804085f8>,\n",
       " 607333: <__main__.user_seq at 0x1b780408630>,\n",
       " 169942: <__main__.user_seq at 0x1b780408668>,\n",
       " 118708: <__main__.user_seq at 0x1b7804086a0>,\n",
       " 841440: <__main__.user_seq at 0x1b7804086d8>,\n",
       " 746589: <__main__.user_seq at 0x1b780408710>,\n",
       " 1266013: <__main__.user_seq at 0x1b780408748>,\n",
       " 238690: <__main__.user_seq at 0x1b780408780>,\n",
       " 558047: <__main__.user_seq at 0x1b7804087b8>,\n",
       " 32126: <__main__.user_seq at 0x1b7804087f0>,\n",
       " 950570: <__main__.user_seq at 0x1b780408828>,\n",
       " 744971: <__main__.user_seq at 0x1b780408860>,\n",
       " 1294524: <__main__.user_seq at 0x1b780408898>,\n",
       " 1273091: <__main__.user_seq at 0x1b7804088d0>,\n",
       " 1261332: <__main__.user_seq at 0x1b780408908>,\n",
       " 358867: <__main__.user_seq at 0x1b780408940>,\n",
       " 1262509: <__main__.user_seq at 0x1b780408978>,\n",
       " 838473: <__main__.user_seq at 0x1b7804089b0>,\n",
       " 1252224: <__main__.user_seq at 0x1b7804089e8>,\n",
       " 462174: <__main__.user_seq at 0x1b780408a20>,\n",
       " 5056: <__main__.user_seq at 0x1b780408a58>,\n",
       " 51910: <__main__.user_seq at 0x1b780408a90>,\n",
       " 965592: <__main__.user_seq at 0x1b780408ac8>,\n",
       " 1018683: <__main__.user_seq at 0x1b780408b00>,\n",
       " 1161820: <__main__.user_seq at 0x1b780408b38>,\n",
       " 354821: <__main__.user_seq at 0x1b780408b70>,\n",
       " 759052: <__main__.user_seq at 0x1b780408ba8>,\n",
       " 194275: <__main__.user_seq at 0x1b780408be0>,\n",
       " 734052: <__main__.user_seq at 0x1b780408c18>,\n",
       " 1282607: <__main__.user_seq at 0x1b780408c50>,\n",
       " 731186: <__main__.user_seq at 0x1b780408c88>,\n",
       " 180069: <__main__.user_seq at 0x1b780408cc0>,\n",
       " 1612: <__main__.user_seq at 0x1b780408cf8>,\n",
       " 538044: <__main__.user_seq at 0x1b780408d30>,\n",
       " 990035: <__main__.user_seq at 0x1b780408d68>,\n",
       " 1361368: <__main__.user_seq at 0x1b780408da0>,\n",
       " 1350457: <__main__.user_seq at 0x1b780408dd8>,\n",
       " 821746: <__main__.user_seq at 0x1b780408e10>,\n",
       " 1229775: <__main__.user_seq at 0x1b780408e48>,\n",
       " 476429: <__main__.user_seq at 0x1b780408e80>,\n",
       " 1240125: <__main__.user_seq at 0x1b780408eb8>,\n",
       " 148191: <__main__.user_seq at 0x1b780408ef0>,\n",
       " 696436: <__main__.user_seq at 0x1b780408f28>,\n",
       " 624782: <__main__.user_seq at 0x1b780408f60>,\n",
       " 794136: <__main__.user_seq at 0x1b780408f98>,\n",
       " 670956: <__main__.user_seq at 0x1b780408fd0>,\n",
       " 875266: <__main__.user_seq at 0x1b78040f048>,\n",
       " 455070: <__main__.user_seq at 0x1b78040f080>,\n",
       " 1024564: <__main__.user_seq at 0x1b78040f0b8>,\n",
       " 739124: <__main__.user_seq at 0x1b78040f0f0>,\n",
       " 1015886: <__main__.user_seq at 0x1b78040f128>,\n",
       " 100432: <__main__.user_seq at 0x1b78040f160>,\n",
       " 1073521: <__main__.user_seq at 0x1b78040f198>,\n",
       " 285446: <__main__.user_seq at 0x1b78040f1d0>,\n",
       " 976386: <__main__.user_seq at 0x1b78040f208>,\n",
       " 1123452: <__main__.user_seq at 0x1b78040f240>,\n",
       " 329870: <__main__.user_seq at 0x1b78040f278>,\n",
       " 935560: <__main__.user_seq at 0x1b78040f2b0>,\n",
       " 401245: <__main__.user_seq at 0x1b78040f2e8>,\n",
       " 646421: <__main__.user_seq at 0x1b78040f320>,\n",
       " 1309442: <__main__.user_seq at 0x1b78040f358>,\n",
       " 1171857: <__main__.user_seq at 0x1b78040f390>,\n",
       " 777171: <__main__.user_seq at 0x1b78040f3c8>,\n",
       " 1081214: <__main__.user_seq at 0x1b78040f400>,\n",
       " 929657: <__main__.user_seq at 0x1b78040f438>,\n",
       " 928415: <__main__.user_seq at 0x1b78040f470>,\n",
       " 467108: <__main__.user_seq at 0x1b78040f4a8>,\n",
       " 889728: <__main__.user_seq at 0x1b78040f4e0>,\n",
       " 1365989: <__main__.user_seq at 0x1b78040f518>,\n",
       " 1253679: <__main__.user_seq at 0x1b78040f550>,\n",
       " 684069: <__main__.user_seq at 0x1b78040f588>,\n",
       " 291697: <__main__.user_seq at 0x1b78040f5c0>,\n",
       " 216546: <__main__.user_seq at 0x1b78040f5f8>,\n",
       " 654073: <__main__.user_seq at 0x1b78040f630>,\n",
       " 1080425: <__main__.user_seq at 0x1b78040f668>,\n",
       " 340634: <__main__.user_seq at 0x1b78040f6a0>,\n",
       " 1034050: <__main__.user_seq at 0x1b78040f6d8>,\n",
       " 1206065: <__main__.user_seq at 0x1b78040f710>,\n",
       " 715325: <__main__.user_seq at 0x1b78040f748>,\n",
       " 803748: <__main__.user_seq at 0x1b78040f780>,\n",
       " 1095295: <__main__.user_seq at 0x1b78040f7b8>,\n",
       " 1171136: <__main__.user_seq at 0x1b78040f7f0>,\n",
       " 1294875: <__main__.user_seq at 0x1b78040f828>,\n",
       " 980295: <__main__.user_seq at 0x1b78040f860>,\n",
       " 750139: <__main__.user_seq at 0x1b78040f898>,\n",
       " 68475: <__main__.user_seq at 0x1b78040f8d0>,\n",
       " 222996: <__main__.user_seq at 0x1b78040f908>,\n",
       " 258831: <__main__.user_seq at 0x1b78040f940>,\n",
       " 1117558: <__main__.user_seq at 0x1b78040f978>,\n",
       " 953680: <__main__.user_seq at 0x1b78040f9b0>,\n",
       " 356930: <__main__.user_seq at 0x1b78040f9e8>,\n",
       " 719748: <__main__.user_seq at 0x1b78040fa20>,\n",
       " 678792: <__main__.user_seq at 0x1b78040fa58>,\n",
       " 37907: <__main__.user_seq at 0x1b78040fa90>,\n",
       " 862097: <__main__.user_seq at 0x1b78040fac8>,\n",
       " 125349: <__main__.user_seq at 0x1b78040fb00>,\n",
       " 1048727: <__main__.user_seq at 0x1b78040fb38>,\n",
       " 590118: <__main__.user_seq at 0x1b78040fb70>,\n",
       " 311082: <__main__.user_seq at 0x1b78040fba8>,\n",
       " 328673: <__main__.user_seq at 0x1b78040fbe0>,\n",
       " 169455: <__main__.user_seq at 0x1b78040fc18>,\n",
       " 708695: <__main__.user_seq at 0x1b78040fc50>,\n",
       " 89810: <__main__.user_seq at 0x1b78040fc88>,\n",
       " 1086097: <__main__.user_seq at 0x1b78040fcc0>,\n",
       " 119421: <__main__.user_seq at 0x1b78040fcf8>,\n",
       " 1126462: <__main__.user_seq at 0x1b78040fd30>,\n",
       " 910723: <__main__.user_seq at 0x1b78040fd68>,\n",
       " 717448: <__main__.user_seq at 0x1b78040fda0>,\n",
       " 776280: <__main__.user_seq at 0x1b78040fdd8>,\n",
       " 1095113: <__main__.user_seq at 0x1b78040fe10>,\n",
       " 375128: <__main__.user_seq at 0x1b78040fe48>,\n",
       " 1331639: <__main__.user_seq at 0x1b78040fe80>,\n",
       " 1312462: <__main__.user_seq at 0x1b78040feb8>,\n",
       " 277225: <__main__.user_seq at 0x1b78040fef0>,\n",
       " 746631: <__main__.user_seq at 0x1b78040ff28>,\n",
       " 419675: <__main__.user_seq at 0x1b78040ff60>,\n",
       " 426036: <__main__.user_seq at 0x1b78040ff98>,\n",
       " 23027: <__main__.user_seq at 0x1b78040ffd0>,\n",
       " 1305495: <__main__.user_seq at 0x1b780417048>,\n",
       " 688262: <__main__.user_seq at 0x1b780417080>,\n",
       " 1163490: <__main__.user_seq at 0x1b7804170b8>,\n",
       " 1024243: <__main__.user_seq at 0x1b7804170f0>,\n",
       " 958485: <__main__.user_seq at 0x1b780417128>,\n",
       " 130605: <__main__.user_seq at 0x1b780417160>,\n",
       " 340616: <__main__.user_seq at 0x1b780417198>,\n",
       " 670827: <__main__.user_seq at 0x1b7804171d0>,\n",
       " 1140404: <__main__.user_seq at 0x1b780417208>,\n",
       " 324234: <__main__.user_seq at 0x1b780417240>,\n",
       " 420165: <__main__.user_seq at 0x1b780417278>,\n",
       " 1331533: <__main__.user_seq at 0x1b7804172b0>,\n",
       " 1300003: <__main__.user_seq at 0x1b7804172e8>,\n",
       " 482733: <__main__.user_seq at 0x1b780417320>,\n",
       " 952712: <__main__.user_seq at 0x1b780417358>,\n",
       " 994435: <__main__.user_seq at 0x1b780417390>,\n",
       " 212349: <__main__.user_seq at 0x1b7804173c8>,\n",
       " 1349346: <__main__.user_seq at 0x1b780417400>,\n",
       " 867882: <__main__.user_seq at 0x1b780417438>,\n",
       " 425668: <__main__.user_seq at 0x1b780417470>,\n",
       " 603789: <__main__.user_seq at 0x1b7804174a8>,\n",
       " 1036164: <__main__.user_seq at 0x1b7804174e0>,\n",
       " 1045485: <__main__.user_seq at 0x1b780417518>,\n",
       " 1215537: <__main__.user_seq at 0x1b780417550>,\n",
       " 1074206: <__main__.user_seq at 0x1b780417588>,\n",
       " 51558: <__main__.user_seq at 0x1b7804175c0>,\n",
       " 206513: <__main__.user_seq at 0x1b7804175f8>,\n",
       " 1097462: <__main__.user_seq at 0x1b780417630>,\n",
       " 740763: <__main__.user_seq at 0x1b780417668>,\n",
       " 254971: <__main__.user_seq at 0x1b7804176a0>,\n",
       " 817716: <__main__.user_seq at 0x1b7804176d8>,\n",
       " 520613: <__main__.user_seq at 0x1b780417710>,\n",
       " 637590: <__main__.user_seq at 0x1b780417748>,\n",
       " 160775: <__main__.user_seq at 0x1b780417780>,\n",
       " 155381: <__main__.user_seq at 0x1b7804177b8>,\n",
       " 236360: <__main__.user_seq at 0x1b7804177f0>,\n",
       " 473209: <__main__.user_seq at 0x1b780417828>,\n",
       " 91356: <__main__.user_seq at 0x1b780417860>,\n",
       " 393059: <__main__.user_seq at 0x1b780417898>,\n",
       " 439146: <__main__.user_seq at 0x1b7804178d0>,\n",
       " 956525: <__main__.user_seq at 0x1b780417908>,\n",
       " 49020: <__main__.user_seq at 0x1b780417940>,\n",
       " 1306827: <__main__.user_seq at 0x1b780417978>,\n",
       " 1198470: <__main__.user_seq at 0x1b7804179b0>,\n",
       " 857247: <__main__.user_seq at 0x1b7804179e8>,\n",
       " 316571: <__main__.user_seq at 0x1b780417a20>,\n",
       " 548906: <__main__.user_seq at 0x1b780417a58>,\n",
       " 102795: <__main__.user_seq at 0x1b780417a90>,\n",
       " 595835: <__main__.user_seq at 0x1b780417ac8>,\n",
       " 1091799: <__main__.user_seq at 0x1b780417b00>,\n",
       " 394049: <__main__.user_seq at 0x1b780417b38>,\n",
       " 773358: <__main__.user_seq at 0x1b780417b70>,\n",
       " 318109: <__main__.user_seq at 0x1b780417ba8>,\n",
       " 291352: <__main__.user_seq at 0x1b780417be0>,\n",
       " 1178849: <__main__.user_seq at 0x1b780417c18>,\n",
       " 651257: <__main__.user_seq at 0x1b780417c50>,\n",
       " 445835: <__main__.user_seq at 0x1b780417c88>,\n",
       " 1144351: <__main__.user_seq at 0x1b780417cc0>,\n",
       " 773513: <__main__.user_seq at 0x1b780417cf8>,\n",
       " 485725: <__main__.user_seq at 0x1b780417d30>,\n",
       " 1011726: <__main__.user_seq at 0x1b780417d68>,\n",
       " 1209968: <__main__.user_seq at 0x1b780417da0>,\n",
       " 435886: <__main__.user_seq at 0x1b780417dd8>,\n",
       " 465038: <__main__.user_seq at 0x1b780417e10>,\n",
       " 627033: <__main__.user_seq at 0x1b780417e48>,\n",
       " 1247690: <__main__.user_seq at 0x1b780417e80>,\n",
       " 763791: <__main__.user_seq at 0x1b780417eb8>,\n",
       " 184855: <__main__.user_seq at 0x1b780417ef0>,\n",
       " 895542: <__main__.user_seq at 0x1b780417f28>,\n",
       " 1006389: <__main__.user_seq at 0x1b780417f60>,\n",
       " 265351: <__main__.user_seq at 0x1b780417f98>,\n",
       " 402729: <__main__.user_seq at 0x1b780417fd0>,\n",
       " 23259: <__main__.user_seq at 0x1b78041e048>,\n",
       " 81997: <__main__.user_seq at 0x1b78041e080>,\n",
       " 165142: <__main__.user_seq at 0x1b78041e0b8>,\n",
       " 688755: <__main__.user_seq at 0x1b78041e0f0>,\n",
       " 476719: <__main__.user_seq at 0x1b78041e128>,\n",
       " 926677: <__main__.user_seq at 0x1b78041e160>,\n",
       " 318136: <__main__.user_seq at 0x1b78041e198>,\n",
       " 484341: <__main__.user_seq at 0x1b78041e1d0>,\n",
       " 795340: <__main__.user_seq at 0x1b78041e208>,\n",
       " 588192: <__main__.user_seq at 0x1b78041e240>,\n",
       " 1332698: <__main__.user_seq at 0x1b78041e278>,\n",
       " 530363: <__main__.user_seq at 0x1b78041e2b0>,\n",
       " 1150284: <__main__.user_seq at 0x1b78041e2e8>,\n",
       " 1298178: <__main__.user_seq at 0x1b78041e320>,\n",
       " 1166570: <__main__.user_seq at 0x1b78041e358>,\n",
       " 840265: <__main__.user_seq at 0x1b78041e390>,\n",
       " 1336125: <__main__.user_seq at 0x1b78041e3c8>,\n",
       " 663133: <__main__.user_seq at 0x1b78041e400>,\n",
       " 914208: <__main__.user_seq at 0x1b78041e438>,\n",
       " 643951: <__main__.user_seq at 0x1b78041e470>,\n",
       " 624118: <__main__.user_seq at 0x1b78041e4a8>,\n",
       " 493038: <__main__.user_seq at 0x1b78041e4e0>,\n",
       " 7746: <__main__.user_seq at 0x1b78041e518>,\n",
       " 946860: <__main__.user_seq at 0x1b78041e550>,\n",
       " 446560: <__main__.user_seq at 0x1b78041e588>,\n",
       " 1279469: <__main__.user_seq at 0x1b78041e5c0>,\n",
       " 928783: <__main__.user_seq at 0x1b78041e5f8>,\n",
       " 471519: <__main__.user_seq at 0x1b78041e630>,\n",
       " 1204978: <__main__.user_seq at 0x1b78041e668>,\n",
       " 1215838: <__main__.user_seq at 0x1b78041e6a0>,\n",
       " 1150480: <__main__.user_seq at 0x1b78041e6d8>,\n",
       " 884245: <__main__.user_seq at 0x1b78041e710>,\n",
       " 798951: <__main__.user_seq at 0x1b78041e748>,\n",
       " 801040: <__main__.user_seq at 0x1b78041e780>,\n",
       " 711794: <__main__.user_seq at 0x1b78041e7b8>,\n",
       " 494610: <__main__.user_seq at 0x1b78041e7f0>,\n",
       " 210948: <__main__.user_seq at 0x1b78041e828>,\n",
       " 1150289: <__main__.user_seq at 0x1b78041e860>,\n",
       " 758161: <__main__.user_seq at 0x1b78041e898>,\n",
       " 136101: <__main__.user_seq at 0x1b78041e8d0>,\n",
       " 1263601: <__main__.user_seq at 0x1b78041e908>,\n",
       " 1281769: <__main__.user_seq at 0x1b78041e940>,\n",
       " 842085: <__main__.user_seq at 0x1b78041e978>,\n",
       " 740431: <__main__.user_seq at 0x1b78041e9b0>,\n",
       " 380179: <__main__.user_seq at 0x1b78041e9e8>,\n",
       " 796523: <__main__.user_seq at 0x1b78041ea20>,\n",
       " 894761: <__main__.user_seq at 0x1b78041ea58>,\n",
       " 96724: <__main__.user_seq at 0x1b78041ea90>,\n",
       " 1343616: <__main__.user_seq at 0x1b78041eac8>,\n",
       " 88701: <__main__.user_seq at 0x1b78041eb00>,\n",
       " 705708: <__main__.user_seq at 0x1b78041eb38>,\n",
       " 811533: <__main__.user_seq at 0x1b78041eb70>,\n",
       " 1191205: <__main__.user_seq at 0x1b78041eba8>,\n",
       " 3688: <__main__.user_seq at 0x1b78041ebe0>,\n",
       " 955495: <__main__.user_seq at 0x1b78041ec18>,\n",
       " 78691: <__main__.user_seq at 0x1b78041ec50>,\n",
       " 1138742: <__main__.user_seq at 0x1b78041ec88>,\n",
       " 836024: <__main__.user_seq at 0x1b78041ecc0>,\n",
       " 309602: <__main__.user_seq at 0x1b78041ecf8>,\n",
       " 8766: <__main__.user_seq at 0x1b78041ed30>,\n",
       " 1086210: <__main__.user_seq at 0x1b78041ed68>,\n",
       " 490240: <__main__.user_seq at 0x1b78041eda0>,\n",
       " 459936: <__main__.user_seq at 0x1b78041edd8>,\n",
       " 56949: <__main__.user_seq at 0x1b78041ee10>,\n",
       " 319655: <__main__.user_seq at 0x1b78041ee48>,\n",
       " 277518: <__main__.user_seq at 0x1b78041ee80>,\n",
       " 732418: <__main__.user_seq at 0x1b78041eeb8>,\n",
       " 633415: <__main__.user_seq at 0x1b78041eef0>,\n",
       " 1032836: <__main__.user_seq at 0x1b78041ef28>,\n",
       " 1129480: <__main__.user_seq at 0x1b78041ef60>,\n",
       " 215150: <__main__.user_seq at 0x1b78041ef98>,\n",
       " 1030103: <__main__.user_seq at 0x1b78041efd0>,\n",
       " 10281: <__main__.user_seq at 0x1b780425048>,\n",
       " 1254525: <__main__.user_seq at 0x1b780425080>,\n",
       " 869277: <__main__.user_seq at 0x1b7804250b8>,\n",
       " 746569: <__main__.user_seq at 0x1b7804250f0>,\n",
       " 67119: <__main__.user_seq at 0x1b780425128>,\n",
       " 973428: <__main__.user_seq at 0x1b780425160>,\n",
       " 786824: <__main__.user_seq at 0x1b780425198>,\n",
       " 1111731: <__main__.user_seq at 0x1b7804251d0>,\n",
       " 1202073: <__main__.user_seq at 0x1b780425208>,\n",
       " 605164: <__main__.user_seq at 0x1b780425240>,\n",
       " 581368: <__main__.user_seq at 0x1b780425278>,\n",
       " 1300636: <__main__.user_seq at 0x1b7804252b0>,\n",
       " 1035207: <__main__.user_seq at 0x1b7804252e8>,\n",
       " 844492: <__main__.user_seq at 0x1b780425320>,\n",
       " 19167: <__main__.user_seq at 0x1b780425358>,\n",
       " 803970: <__main__.user_seq at 0x1b780425390>,\n",
       " 573512: <__main__.user_seq at 0x1b7804253c8>,\n",
       " 868765: <__main__.user_seq at 0x1b780425400>,\n",
       " 433408: <__main__.user_seq at 0x1b780425438>,\n",
       " 772261: <__main__.user_seq at 0x1b780425470>,\n",
       " 484035: <__main__.user_seq at 0x1b7804254a8>,\n",
       " 593613: <__main__.user_seq at 0x1b7804254e0>,\n",
       " 675854: <__main__.user_seq at 0x1b780425518>,\n",
       " 860938: <__main__.user_seq at 0x1b780425550>,\n",
       " 1080025: <__main__.user_seq at 0x1b780425588>,\n",
       " 1227975: <__main__.user_seq at 0x1b7804255c0>,\n",
       " 1217923: <__main__.user_seq at 0x1b7804255f8>,\n",
       " 781337: <__main__.user_seq at 0x1b780425630>,\n",
       " 766355: <__main__.user_seq at 0x1b780425668>,\n",
       " 1011370: <__main__.user_seq at 0x1b7804256a0>,\n",
       " 1043386: <__main__.user_seq at 0x1b7804256d8>,\n",
       " 1314034: <__main__.user_seq at 0x1b780425710>,\n",
       " 1359018: <__main__.user_seq at 0x1b780425748>,\n",
       " 337372: <__main__.user_seq at 0x1b780425780>,\n",
       " 967286: <__main__.user_seq at 0x1b7804257b8>,\n",
       " 381644: <__main__.user_seq at 0x1b7804257f0>,\n",
       " 1167296: <__main__.user_seq at 0x1b780425828>,\n",
       " 1318762: <__main__.user_seq at 0x1b780425860>,\n",
       " 359954: <__main__.user_seq at 0x1b780425898>,\n",
       " 686230: <__main__.user_seq at 0x1b7804258d0>,\n",
       " 480465: <__main__.user_seq at 0x1b780425908>,\n",
       " ...}"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>launch_day</th>\n",
       "      <th>launch</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>16</td>\n",
       "      <td>13</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>16</td>\n",
       "      <td>14</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>16</td>\n",
       "      <td>15</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>16</td>\n",
       "      <td>18</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>16</td>\n",
       "      <td>19</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   user_id  launch_day  launch\n",
       "0       16          13       1\n",
       "1       16          14       1\n",
       "2       16          15       1\n",
       "3       16          18       1\n",
       "4       16          19       1"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "launch['launch'] = 1\n",
    "launch_table = launch.groupby(['user_id', 'launch_day'], \n",
    "                              as_index=False).agg({'launch':'sum'})\n",
    "launch_table.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "def record_to_sequence(table):\n",
    "    table.columns=['user_id','day','value']\n",
    "    table.sort_values(by=['user_id','day'],inplace=True)\n",
    "    table['string']=table.day.map(str)+':'+table.value.map(str)\n",
    "    table=table.groupby(['user_id'],as_index=False).agg({'string':lambda x:','.join(x)})\n",
    "    return table"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>string</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>16</td>\n",
       "      <td>13:1,14:1,15:1,18:1,19:1,20:1,21:1,22:1,23:1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>30</td>\n",
       "      <td>24:1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>98</td>\n",
       "      <td>16:1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>105</td>\n",
       "      <td>12:1,14:1,15:1,16:1,17:1,18:1,19:1,20:1,21:1,2...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>176</td>\n",
       "      <td>27:1,28:1,29:1,30:1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   user_id                                             string\n",
       "0       16       13:1,14:1,15:1,18:1,19:1,20:1,21:1,22:1,23:1\n",
       "1       30                                               24:1\n",
       "2       98                                               16:1\n",
       "3      105  12:1,14:1,15:1,16:1,17:1,18:1,19:1,20:1,21:1,2...\n",
       "4      176                                27:1,28:1,29:1,30:1"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "launch_table=record_to_sequence(launch_table)\n",
    "launch_table.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "for index,row in launch_table.iterrows():\n",
    "    data[row[0]].put_feature(1,row[1])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "创作视频信息"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "create['create']=1\n",
    "create_table = create.groupby(['user_id','create_day'],as_index=False).agg({'create':'sum'})\n",
    "create_table = record_to_sequence(create_table)\n",
    "for index,row in create_table.iterrows():\n",
    "    data[row[0]].put_feature(2,row[1])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "用户行为数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
